package com.ayu.a.practice01;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 * @Author 徐林玉
 * @Description ContainsDuplicatePrac
 * @Date 2022/11/8 15:13
 * @Version 1.0
 */
public class ContainsDuplicatePrac {


    public static void main(String[] args) {

        int[] arr = new int[]{1,3,2,4,2};

        boolean b = containsDuplicate2(arr);

        System.out.println("b = " + b);

    }


    /**
     * 暴力求解超时...
     * @param arr
     * @return
     */
//    public static boolean containsDuplicate(int[] arr) {
//
//
//        for (int i = 0; i < arr.length; i++) {
//
//
//            int temp = arr[i];
//
//            for (int j = 0; j < arr.length; j++) {
//
//                if (i != j && temp == arr[j]) {
//
//                    return true;
//                }
//
//            }
//        }
//
//        return false;
//    }


    /**
     * 先排序后比较
     */
    public static boolean containsDuplicate1(int[] arr){

        Arrays.sort(arr);

        for (int i = 0; i < arr.length-1; i++) {

            if(arr[i]==arr[i+1]){

                return true;
            }
        }
        return false;
    }


    /**
     * 使用set
     */
    public static boolean containsDuplicate2(int[] arr){

        Set<Integer> set = new HashSet<>();

        for (int i = 0; i < arr.length; i++) {

            if(!set.add(arr[i])){

                return true;
            }
        }

        return false;

    }

}
